package com.zhku.zhny.admin.dao;

import java.sql.SQLException;
import java.util.List;

import com.zhku.zhny.domain.Admin;
import com.zhku.zhny.domain.Event;
import com.zhku.zhny.domain.Group;
import com.zhku.zhny.domain.Honor;
import com.zhku.zhny.domain.Introduction;
import com.zhku.zhny.domain.SignUp;

public interface AdminDao {
	/**
	 * 插入小组信息
	 * @param group
	 * @return
	 */
	int insertGroupInfo(Group group) throws SQLException ;
	/**
	 * 统计小组记录数
	 * @param groupName
	 * @return
	 */
	int countGroupInfo(String groupName) throws SQLException ;
	/**
	 * 查询小组信息
	 * @param groupName
	 * @return
	 */
	List<Group> selectGroupsByName(String groupName, int currPage, int pageSize) throws SQLException;
	/**
	 * 查询出小组图片的存放路径
	 * @param groupId
	 * @return
	 */
	String selectGroupImgPathById(String groupId) throws SQLException;
	/**
	 * 根据主键删除小组信息
	 * @param groupId
	 * @return
	 */
	boolean deleteGroupById(String groupId) throws SQLException;
	/**
	 * 查询所有小组信息
	 * @return
	 */
	List<Group> selectAllGroups() throws SQLException ;
	/**
	 * 查询返回所有组别名
	 * @return
	 */
	List<String> selectGroupsName() throws SQLException ;
	
//-----------------------------------------------------------------------	
	/**
	 * 后台插入报名信息
	 * @param signUpBean
	 * @return
	 */
	int insertSignUpInfo(SignUp signUpBean) throws SQLException ;
	/**
	 * 统计报名信息数
	 * @param name
	 * @param phone
	 * @return
	 */
	int countSignUpInfo(String name, String phone) throws SQLException ;
	/**
	 * 分页查询报名信息
	 * @param name
	 * @param phone
	 * @param currPage
	 * @param pageSize
	 * @return
	 */
	List<SignUp> selectSignUp(String name, String phone, int currPage, int pageSize) throws SQLException ;
	/**
	 * 根据主键删除报名信息
	 * @param id
	 * @return
	 */
	boolean deleteSignUpById(String id) throws SQLException ;
	/**
	 * 查询所有的报名信息
	 * @return
	 */
	List<SignUp> selectAllSignUp() throws SQLException ;
	/**
	 * 删除多个报名信息
	 * @param ids
	 * @return
	 */
	boolean deleteSignUpByIds(String[] ids) throws SQLException ;
//----------------------------------------------------------
	/**
	 * 插入荣誉信息
	 * @param honor
	 * @return
	 */
	int insertHonorInfo(Honor honor) throws SQLException ;
	/**
	 * 查询
	 * @param name
	 * @param date
	 * @param currPage
	 * @param pageSize
	 * @return
	 */
	List<Honor> selectHonor(String name, String date, int currPage, int pageSize) throws SQLException ;
	/**
	 * 统计荣誉信息
	 * @param name
	 * @param date
	 * @return
	 */
	int countHonorInfo(String name, String date) throws SQLException ;
	/**
	 * 删除荣誉信息
	 * @param honorId
	 * @return
	 */
	boolean deleteHonorById(String honorId) throws SQLException ;
	/**
	 * 根据主键id查询对应荣誉信息的图片名
	 * @param honorId
	 * @return
	 */
	String selectHonorImgPathById(String honorId) throws SQLException ;
	/**
	 * 查询所有荣誉信息
	 * @return
	 */
	List<Honor> selectAllHonor() throws SQLException ;
	/**
	 * 根据主键id查询对应的报名信息
	 * @param id
	 * @return
	 */
	SignUp selectSignUpById(String id) throws SQLException ;
	/**
	 * 查询管理员
	 * @param name
	 * @param password
	 * @return
	 */
	Admin selectAdmin(String name, String password) throws SQLException ;
	/**
	 * 插入事记信息
	 * @param event
	 * @return
	 */
	int insertEventInfo(Event event) throws SQLException ;
	/**
	 * 插入团队介绍信息
	 * @param intro
	 * @return
	 * @throws SQLException
	 */
	int insertIntroductionInfo(Introduction intro) throws SQLException ;
	/**
	 * 查询所有团队介绍信息
	 * @return
	 */
	List<Introduction> selectAllIntroduction() throws SQLException ;
	/**
	 * 根据主键删除团队介绍信息
	 * @param string
	 * @return
	 */
	boolean deleteIntroById(String id) throws SQLException;
	/**
	 * 根据id查出团队介绍图片名
	 * @param string
	 * @return
	 */
	String selectIntroImgPathById(String introId) throws SQLException;
	/**
	 * 查询所有事记信息
	 * @return
	 */
	List<Event> selectAllEvent() throws SQLException;
	/**
	 * 根据id查出事记介绍图片名
	 * @param string
	 * @return
	 */
	String selectEventImgPathById(String eventId) throws SQLException;
	/**
	 * 删除事记信息
	 * @param string
	 * @return
	 */
	boolean deleteEventById(String eventId) throws SQLException;
	/**
	 * 根据条件统计事记信息
	 * @param title
	 * @param date
	 * @return
	 * @throws SQLException
	 */
	int countEventInfo(String title, String date) throws SQLException;
	/**
	 * 根据条件查询事件信息
	 * @param title
	 * @param date
	 * @param currPage
	 * @param pageSize
	 * @return
	 */
	List<Event> selectEvent(String title, String date, int currPage, int pageSize) throws SQLException ;
	
}
